1. Technical Field
The present invention relates in general to data processing and, in particular, to communication in a data processing system. Still more particularly, the present invention relates to a data processing system and method of communication utilizing a “request-and-forget” protocol.
2. Description of the Related Art
At a conceptual level, a data processing system can be thought of as a collection of interconnected components, each comprising hardware and/or software and/or firmware, which operate in concert to process information. Because each component of the data processing system has a limited range of functionality circumscribed by its circuitry and/or programming as well as a finite amount of data storage, components must frequently make requests for service by other components of the data processing system in order to accomplish the necessary work.
Data processing systems nearly universally manage such requests by implementing queues to buffer requests at each of the requester component (also referred to as master or client) and the recipient component (also referred to as slave or server). In a typical management scheme, the requester allocates a queue entry to a request and maintains the queue entry allocation until the requester receives an acknowledgment of service (and perhaps data associated with the request) from the recipient. The requester removes the request from the queue only after receiving the acknowledgment, meaning that the allocated queue entry cannot be utilized for processing another request until the current request has been retired. Consequently, the maximum number of requests undergoing processing at any one time is equal to the queue depth of the requester.
To avoid the requester overflowing the queues of the recipient, it is often required for the requester to have intimate knowledge of the queue capacity of the recipient, the latencies associated with the transmission of requests and acknowledgments between the requester and the recipient, the number of types of possible requests and acknowledgments, and so forth. The requirement that the requester have knowledge of the internal design of the recipient, the communication latency, the possible information types, etc., limits the flexibility of system design and may require the incorporation of a large number of configuration fields or the like into the design of the requester to indicate the recipient's configuration. With such limitations and complexity present in each requestor/recipient pair, data processing system design tends to be either undesirably inflexible or complex or both.
The present invention offers an attractive alternative request-servicing protocol that permits more flexibility in data processing system design while allowing the data processing system to support more requests undergoing processing than there are queue entries in the requester.